package com.secxiot.provider.narcotic.dao;

import com.secxiot.provider.narcotic.entity.NarcoticDoctorRecordDo;
import com.secxiot.provider.narcotic.vo.QRCodeProDrugsVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface NarcoticDoctorRecordMapper {


    /**
     * 医生药品记录 信息
     *
     * @param doctorRecordId 医生药品记录ID
     * @return
     */
    NarcoticDoctorRecordDo getNarcoticDoctorRecordById(@Param("doctorRecordId") Long doctorRecordId);

    /**
     * 添加医生药品记录
     *
     * @param narcoticDoctorRecordDo
     * @return
     */
    Long insert(NarcoticDoctorRecordDo narcoticDoctorRecordDo);

    /**
     * 修改医生药品记录
     *
     * @param narcoticDoctorRecordDo
     * @return
     */
    Long updateByPrimaryKey(NarcoticDoctorRecordDo narcoticDoctorRecordDo);

    /**
     * 医生药品记录 列表
     *
     * @param map
     * @return
     */
    List<NarcoticDoctorRecordDo> selectNarcoticDoctorRecord(Map<String, Object> map);

    /**
     * 医生药品记录 列表
     *
     * @param patientDrugsRecordId 患者药品记录ID
     * @return
     */
    NarcoticDoctorRecordDo selectNarcoticDoctorRecordByNarcoticDrugsRecordId(Long patientDrugsRecordId);

    /**
     * 扫码验证药品
     *
     * @param patientDrugsRecordId 申请用药记录Id
     * @param patientUserId        患者用户Id
     * @return
     */
    QRCodeProDrugsVo scanDrugsQRCode(Long patientDrugsRecordId, Long patientUserId);

    /**
     * 获取患者上一次用药记录
     *
     * @param hospitalId 医院ID
     * @param patientUserId 患者id
     * @return
     */
    NarcoticDoctorRecordDo selectDrugsRecordByUser(Long hospitalId, Long patientUserId);

}